﻿
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
using WalkingTec.Mvvm.Core;
using WalkingTec.Mvvm.Core.Extensions;
using TyMES.Model.BaseInformation;
using TyMES.Model;

namespace TyMES.ViewModel.BaseInformation.ProductBOMVMs
{
    public partial class ProductBOMTemplateVM : BaseTemplateVM
    {
        
        [Display(Name = "_Model._ProductBOM._addTime")]
        public ExcelPropety AddTime_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.AddTime);
        [Display(Name = "_Model._ProductBOM._assemblyConsumption")]
        public ExcelPropety AssemblyConsumption_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.AssemblyConsumption);
        [Display(Name = "_Model._ProductBOM._assemblyMaterialCode")]
        public ExcelPropety AssemblyMaterialCode_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.AssemblyMaterialCode);
        [Display(Name = "_Model._ProductBOM._assemblyMaterialId")]
        public ExcelPropety AssemblyMaterialId_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.AssemblyMaterialId);
        [Display(Name = "_Model._ProductBOM._assemblyMaterialName")]
        public ExcelPropety AssemblyMaterialName_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.AssemblyMaterialName);
        [Display(Name = "_Model._ProductBOM._assemblyMaterialRegex")]
        public ExcelPropety AssemblyMaterialRegex_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.AssemblyMaterialRegex);
        [Display(Name = "_Model._ProductBOM._assemblyMaterialVersion")]
        public ExcelPropety AssemblyMaterialVersion_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.AssemblyMaterialVersion);
        [Display(Name = "_Model._ProductBOM._assemblyUnitCode")]
        public ExcelPropety AssemblyUnitCode_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.AssemblyUnitCode);
        [Display(Name = "_Model._ProductBOM._assemblyline")]
        public ExcelPropety Assemblyline_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.Assemblyline);
        [Display(Name = "_Model._ProductBOM._autoMaterialDeduction")]
        public ExcelPropety AutoMaterialDeduction_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.AutoMaterialDeduction);
        [Display(Name = "_Model._ProductBOM._editTime")]
        public ExcelPropety EditTime_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.EditTime);
        [Display(Name = "_Model._ProductBOM._factoryCode")]
        public ExcelPropety FactoryCode_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.FactoryCode);
        [Display(Name = "_Model._ProductBOM._field1")]
        public ExcelPropety Field1_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.Field1);
        [Display(Name = "_Model._ProductBOM._field2")]
        public ExcelPropety Field2_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.Field2);
        [Display(Name = "_Model._ProductBOM._field3")]
        public ExcelPropety Field3_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.Field3);
        [Display(Name = "_Model._ProductBOM._field4")]
        public ExcelPropety Field4_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.Field4);
        [Display(Name = "_Model._ProductBOM._field5")]
        public ExcelPropety Field5_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.Field5);
        [Display(Name = "_Model._ProductBOM._isDelete")]
        public ExcelPropety IsDelete_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.IsDelete);
        [Display(Name = "_Model._ProductBOM._materialCode")]
        public ExcelPropety MaterialCode_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.MaterialCode);
        [Display(Name = "_Model._ProductBOM._materialId")]
        public ExcelPropety MaterialId_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.MaterialId);
        [Display(Name = "_Model._ProductBOM._materialName")]
        public ExcelPropety MaterialName_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.MaterialName);
        [Display(Name = "_Model._ProductBOM._materialRegex")]
        public ExcelPropety MaterialRegex_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.MaterialRegex);
        [Display(Name = "_Model._ProductBOM._materialSort")]
        public ExcelPropety MaterialSort_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.MaterialSort);
        [Display(Name = "_Model._ProductBOM._materialVersion")]
        public ExcelPropety MaterialVersion_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.MaterialVersion);
        [Display(Name = "_Model._ProductBOM._operationCode")]
        public ExcelPropety OperationCode_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.OperationCode);
        [Display(Name = "_Model._ProductBOM._orderCode")]
        public ExcelPropety OrderCode_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.OrderCode);
        [Display(Name = "_Model._ProductBOM._orderId")]
        public ExcelPropety OrderId_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.OrderId);
        [Display(Name = "_Model._ProductBOM._orderQty")]
        public ExcelPropety OrderQty_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.OrderQty);
        [Display(Name = "_Model._ProductBOM._productBomId")]
        public ExcelPropety ProductBomId_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.ProductBomId);
        [Display(Name = "_Model._ProductBOM._replaceMaterialList")]
        public ExcelPropety ReplaceMaterialList_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.ReplaceMaterialList);
        [Display(Name = "_Model._ProductBOM._replaces")]
        public ExcelPropety Replaces_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.Replaces);
        [Display(Name = "_Model._ProductBOM._retroactive")]
        public ExcelPropety Retroactive_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.Retroactive);
        [Display(Name = "_Model._ProductBOM._routeBomCode")]
        public ExcelPropety RouteBomCode_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.RouteBomCode);
        [Display(Name = "_Model._ProductBOM._routeBomName")]
        public ExcelPropety RouteBomName_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.RouteBomName);
        [Display(Name = "_Model._ProductBOM._routeNumber")]
        public ExcelPropety RouteNumber_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.RouteNumber);
        [Display(Name = "_Model._ProductBOM._scheduleNumber")]
        public ExcelPropety ScheduleNumber_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.ScheduleNumber);
        [Display(Name = "_Model._ProductBOM._shipRegularCheck")]
        public ExcelPropety ShipRegularCheck_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.ShipRegularCheck);
        [Display(Name = "_Model._ProductBOM._shopOrderOperationMaterialId")]
        public ExcelPropety ShopOrderOperationMaterialId_Excel = ExcelPropety.CreateProperty<ProductBOM>(x => x.ShopOrderOperationMaterialId);

	    protected override void InitVM()
        {
            
        }

    }

    public class ProductBOMImportVM : BaseImportVM<ProductBOMTemplateVM, ProductBOM>
    {
            //import

    }

}